package com.itheima.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")//当前实体类对应的数据表名,默认值为当前类名首字母小写
public class User {
    /*
       mp主键生成策略
           AUTO(0)：数据库自增
           【默认】NONE(1)：如果程序添加了ID就用程序员，如果没有添加就用雪花算法
           INPUT(2)：由程序员手动添加
           ASSIGN_ID(3)：雪花算法生成ID
           ASSIGN_UUID(4)：UUID算法生成ID
    */
    @TableId(type = IdType.NONE)
    private Long id;
    private String username;

    /*
     @TableField
        value = "pwd" 如果实体类属性与表中字段不一致时，手动映射
        select = false  表示查询时排除此字段
     */
    @TableField(value = "pwd",select = false)
    private String password;
    private String nickName;
    private Integer age;
    private String email;

    @TableField(exist = false) // 跟数据库映射时，排除此字段，不参与CRUD操作
    private Integer online;  // 通过java代码逻辑，展示是否在线

    //标识的逻辑删除字段
    //value= 1 未删除字段状态值。 delval = 0 已删除字段状态值
    @TableLogic(value = "1" ,delval = "0")
    private Integer deleted;
}
